# 创建时间：2025/5/4 星期日 14:51
# 创建人：李德才

"""
函数名是一个变量，它指向一个函数对象。
通过函数名可以将函数赋值给其他变量，也可以将函数作为参数传递给其他函数。
"""


def abc(num):
    return num * 2


print(abc(10))
fun = abc  # 将函数赋值给变量fun
print(fun(10))


def factorial_func(n):
    if n == 1:
        return 1
    else:
        return n * factorial_func(n - 1)


def do_factorial(list, func):
    new_list = []
    for i in list:
        new_list.append(func(i))  # 函数的变量名+括号即可调用函数
    print(new_list)


if __name__ == '__main__':
    do_factorial((x for x in range(1, 10)), factorial_func)  # 函数可以作为参数传递给其他函数，
